﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using RFMS;

namespace BU
{
    public class Categorie
    {
        private ModelRFMSContainer _container;
        public Categorie()
        {
            _container = ModelRFMSContainer.GetInstance();
        }

        public void Toevoegen(string naam, string locatie)
        {
            _container.CategorieSet.AddObject(RFMS.Categorie.CreateCategorie(0,naam,true, locatie));
            _container.SaveChanges();
        }

        public void CategorieActiveren(string naam, bool waarde)
        {
            var categorie = _container.CategorieSet.FirstOrDefault(p => p.Naam == naam);
            categorie.Actief = waarde;
            _container.SaveChanges();
        }

        public void Verwijderen(string naam)
        {
            try
            {
                var categorie = _container.CategorieSet.FirstOrDefault(p => p.Naam == naam);
                categorie.Actief = false;
                _container.SaveChanges();
            }
            catch (Exception)
            {
                
            }
        }

        public void Wijzigen(string naam, string nieuweNaam, string locatie)
        {
            var categorie = _container.CategorieSet.FirstOrDefault(p => p.Naam == naam);
            if (nieuweNaam != "")
            {
                categorie.Naam = nieuweNaam;
                _container.SaveChanges();
            }
            if (locatie != "")
            {
                categorie.Locatie = locatie;
                _container.SaveChanges();
            }
        }

        public List<List<string>> LijstVanCategorieen()
        {
            var categorieen = from c in _container.CategorieSet
                             where c.Actief == true
                             select c;

            var lijst = new List<List<string>>();

            foreach (var cat in categorieen)
            {
                lijst.Add(new List<string> { cat.CategorieId.ToString(), cat.Naam, cat.Locatie});
            }

            return lijst;
        }

        public List<List<string>> LijstVanAlleCategorieen()
        {
            var categorieen = from c in _container.CategorieSet
                              select c;

            var lijst = new List<List<string>>();

            foreach (var cat in categorieen)
            {
                lijst.Add(new List<string> { cat.CategorieId.ToString(), cat.Naam, cat.Locatie, cat.Actief.ToString() });
            }

            return lijst;
        }

        public string Naam { get; set; }        
    }
}
